共计 3490 个字符,预计需要花费 9 分钟才能阅读完成。
背景
最近在腾讯云入了3年的云服务器,尝试着自己建立一个博客网站,云服务器的配置如下:
# 配置信息
root@VM-0-7-debian:~# cat /proc/cpuinfo | grep name | cut -f2 -d:
Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz
# cpu核心数
root@VM-0-7-debian:~# cat /proc/cpuinfo | grep "cpu cores" | cut -f2 -d:
1
服务器系统选择
选择Debian作为服务器系统,由于底层非常稳定,内核和内存的占用都非常小,在小内存的云服务器上可以流畅运行,因此像我这种购买的1C2G小内存云服务器,首选Debian。
- 我在实际操作过程中也发现:Centos初始占用内存20%-22%,Debian初始占用内存9%-11%,高下立判。
镜像源
Docker
Docker 是一个开源的应用容器引擎,基于 Go 语言开发。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
Docker应用场景:
- Web 应用的自动化打包和发布
- 自动化测试和持续集成、发布
- 在服务型环境中部署和调整数据库或其他的后台应用
安装
# 清除以前的版本(如果有)
apt-get -y remove docker docker-engine docker.io
# 更新源,并安装https的支持
apt-get update
apt-get install -y apt-transport-https ca-certificates wget software-properties-common
# 将官方Docker存储库的GPG密钥添加到您的系统
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
# 将Docker存储库添加到APT源
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
# 更新并确保从Docker repo安装
apt update
apt-cache policy docker-ce
# 安装docker-ce
apt install docker-ce
# 检查docker状态
systemctl status docker
# 查看docker版本
docker -v
设置docker镜像
mkdir /etc/docker
vim /etc/docker/daemon.json
# 阿里云镜像
{
"registry-mirrors": ["https://w5jpjsyt.mirror.aliyuncs.com"]
}
# ustc镜像
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
启停docker的系统命令
# 启动docker服务:
systemctl start docker
# 停止docker服务:
systemctl stop docker
# 重启docker服务:
systemctl restart docker
# 查看docker服务状态:
systemctl status docker
# 设置开机启动docker服务:
systemctl enable docker
Docker命令
# 查看镜像可以使用如下命令:
docker images
- REPOSITORY:镜像名称
- TAG:镜像标签
- IMAGE ID:镜像ID
- CREATED:镜像的创建日期
- SIZE:镜像大小
# 如果你需要从网络中查找需要的镜像,可以通过以下命令搜索
docker search 镜像名称
- NAME:镜像名称
- DESCRIPTION:镜像描述
- STARS:用户评价,反应一个镜像的受欢迎程度
- OFFICIAL:是否官方
- AUTOMATED:自动构建,表示该镜像由Docker Hub自动构建流程创建
# 拉取镜像就是从Docker仓库下载镜像到本地,镜像名称格式为 名称:版本号,如果版本号不指定则是最新的版本 命令如下:
docker pull 镜像名称
# 如拉取tomcat最新版本;
docker pull tomcat:latest
# 按照镜像id删除镜像,命令如下:
docker rmi 镜像id
- 1、 docker rmi $IMAGE_ID:删除指定镜像
- 2、 docker rmi
docker images -q
:删除所有镜像
# 查看正在运行的容器使用命令:
docker ps
# 查看所有容器使用命令:
docker ps -a
# 基于已有的镜像来创建和启动容器,创建与启动容器使用命令:
docker run
- -i:表示运行容器
- -t:表示容器启动后会进入其命令行。加入这两个参数后,容器创建就能登录进去。即分配一个伪终端。
- –name :为创建的容器命名。
- -v:表示目录映射关系(前者是宿主机目录,后者是映射到宿主机上的目录),可以使用多个-v做多个目录或文件
映射。注意:最好做目录映射,在宿主机上做修改,然后共享到容器上。 - -d:在run后面加上-d参数,则会创建一个守护式容器在后台运行(这样创建容器后不会自动登录容器,如果只加-i -t
两个参数,创建后就会自动进去容器)。 - -p:表示端口映射,前者是宿主机端口,后者是容器内的映射端口。可以使用多个-p做多个端口映射
创建交互式容器
以交互式方式创建并启动容器,启动完成后,直接进入当前容器,使用exit命令退出容器。
- Tips:此种方式启动容器,如果退出容器,则容器会进入停止状态。
# 先拉取一个镜像 docker pull centos:7 # 创建并启动名称为 mycentos7 的交互式容器;下面指令中的镜像名称 centos:7 也可以使用镜像id docker run -it --name=mycentos7 centos:7 /bin/bash
创建守护式容器
如果需要长期运行的容器,我们可以创建一个守护式容器。
# 先拉取一个镜像
docker pull centos:7
# 创建并启动守护式容器
docker run -di --name=mycentos2 centos:7
# 登录进入容器命令
# docker exec -it container_name (或者 container_id) /bin/bash(exit退出时,容器不会停止)
docker exec -it mycentos2 /bin/bash 12345
停止并启动容器
# 停止正在运行的容器
# docker stop 容器名称或者ID
docker stop mycentos2
# 启动已运行过的容器
# docker start 容器名称或者ID
docker start mycentos2
文件拷贝
# 将linux宿主机中的文件拷贝到容器内可以使用命令
docker cp 宿主机目录或文件 容器名称:容器目录
# 将文件从容器内拷贝出来到linux宿主机使用命令
docker cp 容器名称:容器目录 宿主机文件或目录
安装相关应用
MySQL
# 拉取MySQL 最新镜像
docker pull mysql
# 正常是不需要挂载目录的
docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 mysql
# 如果需要挂载目录
docker run -d -p 3306:3306 --name mysql -v /usr/local/apps/mysql/conf:/etc/mysql -v /usr/local/apps/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql
- –name:容器名,此处命名为mysql
- -e:配置信息,此处配置mysql的root用户的登陆密码
- -p:端口映射,此处映射 主机3306端口 到 容器的3306端口
- -v:主机和容器的目录映射关系,”:”前为主机目录,之后为容器目录
Tomcat
# 拉取tomcat最新镜像
docker pull tomcat
# 运行tomcat,并暴露了8080,443,80三个端口,挂载webapps,conf目录(方便后期调试部署)
docker run -d -p 8080:8080 -p 443:443 -p 80:80 -v /usr/local/apps/tomcat/webapps:/usr/local/tomcat/webapps -v /usr/local/apps/tomcat/conf:/usr/local/tomcat/conf --name tomcat tomcat
Portainer
正文完